import torch
from torch import nn

class Net01(nn.Module):
    def __init__(self):
        super(Net01,self).__init__()

        self.layer = nn.Sequential(
            nn.Linear(21,32), # 输入是 NV , N = 21 , 这是Nasa数据集的特点
            nn.ReLU(),
            nn.Linear(32,64), # 多搭建几层网络
            nn.ReLU(),
            nn.Linear(64,128), # 向下采样的过程
            nn.ReLU(),
            nn.Linear(128,64),
            nn.ReLU(),
            nn.Linear(64,32),
            nn.ReLU(),
            nn.Linear(32,16),
            nn.ReLU(),
            nn.Linear(16,8),
            nn.ReLU(),
            nn.Linear(8,1),
            nn.Sigmoid()
        )

    def forward(self , x):
        x = self.layer(x) # 这里在每个层之间不做运算，所以可以直接用这个序列去表示 其实相当于上面的一个简化写法
        return x

if __name__ == '__main__': # 用于检测到底我们输入的数据是否可以得到一个正确的输出 如果结果为1的话，即为正确
    net = Net01()
    ipt = torch.randn(100, 21)
    pred = net(ipt)
    print(pred)
